<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<!-- 
			面向过程编程
			面向对象编程
			面向切面编程Java中
			JS中有一个面向函数编程
				主要体现JS的高阶函数
		-->
		<script type="text/javascript">
			let arr = [1, 3, 2, 4, 6];
			
			// arr.reduce()
			/*
				reduce(function(obj,item,index,array), initValue)
					obj：初始值，默认的第一个item，如果写了initValue，则为initValue，第二次则为function返回的值
					item：数组中的元素
					index：索引
					array：数组本身
				使用reduce进行数组的和运算
				filter：过滤
				filter(function(item, index, array))
				map：将数组的元素全部都遍历一遍，再返回一个新的数组
				map(function(item, index, array))
				高阶函数不支持break和contine
			*/
			console.log(arr.reduce((initValue,item,index,array) => initValue+item, 0));
			console.log(arr.reduce((x, y) => x + y, 0));
			//找出大于2的数据
			console.log(arr.filter((a, b, c, d) => a > 2));
			arr.map((a, b, c, d) => console.log(a, b, c, d));
		</script>
	</body>
</html>
